using System.Collections.Generic;

namespace CloudStorage.API
{
	/// <summary>
	/// A List of items and metadata returned from a List call to a REST service
	/// </summary>
	/// <typeparam name="T">The type of items returned in the list</typeparam>
	public interface IListResponse<T>
	{
		/// <summary>
		/// Filters the results to return only containers whose name begins with the specified prefix.
		/// </summary>
		string Prefix { get; }

		/// <summary>
		/// A string value that identifies the portion of the list to be returned with the next list operation.
		/// </summary>
		string Marker { get; }

		/// <summary>
		/// Specifies the maximum number of containers to return. If maxresults is not specified, the server will return up to 5,000 items.
		/// </summary>
		int MaxResults { get; }

		/// <summary>
		/// To return the next set of items, specify the value of NextMarker as the marker parameter on the URI for the subsequent request.
		/// </summary>
		string NextMarker { get; }

		/// <summary>
		/// The list of REST items to return.
		/// </summary>
		IEnumerable<T> Items { get; }
	}
}